package JDBC;

import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;

import javax.sql.DataSource;
import java.math.BigDecimal;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Scanner;

public class TestDemo {
    public static void main(String[] args) throws SQLException {
        Scanner sc =new Scanner(System.in);
        System.out.println("请输入要插入书籍的名称：");
        String name=sc.nextLine();
        System.out.println("请输入要插入书籍的作者：");
        String au=sc.nextLine();
        System.out.println("请输入要插入书籍的价格：");
        BigDecimal price= sc.nextBigDecimal();
        System.out.println("请输入要插入书籍的分类：");
        String classification=sc.next();
        /*
        1.创建数据源对象
        描述了数据从哪里来，数据库服务器位置
        向上转型
         */
        DataSource dataSource=new MysqlDataSource();
        ((MysqlDataSource) dataSource).setUrl("jdbc:mysql://127.0.0.1:3306/test?characterEncoding=utf8&useSSL=false");
        ((MysqlDataSource) dataSource).setUser("root");
        ((MysqlDataSource) dataSource).setPassword("182547");

        //2.和数据库服务器建立网络连接
        Connection connection=dataSource.getConnection();

        //3.程序去构造sql语句
        String sql="insert into book values(?,?,?,?)";
        PreparedStatement statement= connection.prepareStatement(sql);
        statement.setString(1,name);//此处不是0开头
        statement.setString(2,au);
        statement.setBigDecimal(3,price);
        statement.setString(4,classification);

        //4.把sql发送到服务器上并执行 返回值表示这个操作影响到了几行
        int n=statement.executeUpdate();
        System.out.println(n);

        //5.释放上述资源
        statement.close();
        connection.close();

    }
}
